Podemos exibir um relatório que, no seu modelo mais básico não passa de uma tabela com dados com colunas de cabeçalho e linhas, correspondentes as colunas de cabeçalho, com os dados do relatório.
Tá bom para um Excel, mas o report server foi criado para fazer relatórios bem mais sofisticados e o segredo é como fazê-los.
No relatório acima suponha que queremos agrupar os produtos por 'Sub-Categoria do Produto', ou seja, pelo 'Tipo do produto'. Fazendo isto aparecerá uma linha apenas com o tipo do produto x e em todas as demais linhas com dados essa 'coluna' referente ao 'tipo do dado' virá em branco indicando que é o mesmo citado logo acima.
As agregações são a base dos agrupamentos dos itens do relatório. Agrupando por 'tipo do produto' podemos fazer o relatório mencionado acima
Contudo o agrupamento no Report Server é um agrupamento visual e não um agrupamento pela associação do valor da coluna como é no SQL Server.
Primeiramente o agrupamento obriga você a colocar as colunas numa 'hierarquia' de agrupamento e, no sql, você
tem que agrupar todas as colunas de dados tipo:
select tipo, marca, [custo de compra], [valor de venda],cor
from Estudos_E_Modelos.[dbo].[Produtos]
group by tipo,marca, [custo de compra], [valor de venda],cor
E o relatório ele ficaria assim :
Ficou bem melhor, o group by não só agrupou os itens bem como ordenou...então boné veio antes de bota que veio antes de camisa. Mas tome cuidado, se 2 colunas tivessem um valor null elas seriam eliminados e se tivessem os mesmos valores de colunas esses valores seriam somados, lógicamente, isto no report server.
O agrupamento visual é uma quebra feita pelo Report Server baseada no valor de um campo. Por exemplo, na lista acima eu tenho um monte do mesmo tipo de produto ( por exemplo, Boné )
O report server permite fazer o 'Agrupamento Visual' por linhas ou colunas e, a partir desse agrupamento, aplicar uma 'regra visual' que permite que eu 'omita um campo repetitivo' ou mesmo 'crie uma quebra' colocando o 'total parcial' daquele valor de campo específico, ou seja, por exemplo um total por tipo de produto.
No exemplo acima temos uma tabela agrupada pelo tipo do produto. Sendo assim temos 3 marcas de boné : Hering, Osklen e Reserva que foram agrupadas em apenas um 'tipo de produto' chamado 'boné' e as colunas 'Custo de Compra', 'Valor de Venda' são os valores desses campos para o produto mas podemos colocar também a somatória dos campos desse item.
Os arranjos que podem ser feitos são incontáveis, mas alguns são importantes conhecer. O primeiro deles é exibir apenas a primeira linha do elemento agrupado.
Para fazer esse efeito :
• 1 - Eu fui no box 'Row Groups', selecionei a linha detalhe (1).
• 2 - Cliquei nele com o botão direito do mouse e selecionei o item 'Group Properties'.
• 3 - Fui na aba 'Visibility' e selecionei a opção 'Hide' no box 'when the report is initially run'(2)
( quando o relatório é exibido inicialmente ).
• 4 - Logo abaixo selecionei o box do item 'Display can be toogled by this report item :' (3) ( a exibição
pode ser alternada pelo item ).
• 5-Selecionei o item 'Tipo' (4) que será o item que fará o chaveamento da exibição.
Portanto somente a primeira linha do item é exibido inicialmente e ao clicar no item 'tipo' todas as
demais linhas dos campos 'escondidos' serão exibidas.
Clicando no [+] do tipo de produto da linha 'boné' as demais linhas de boné são exibidas. Veja como fica.
Fazer os agregamentos e saber como fazer o agregamento correto é a chave do sucesso em muitos relatórios. Para que isto seja possível você precisa entender a nomenclatura do report server.
Você vai pegar os dados de uma fonte de dados e exibir no relatório. Essas linhas de dados são as linhas de detalhes.
Podemos acrescentar as linhas de detalhes uma linha de total que pode ser :
• 1 - Uma linha de total geral, geralmente no final do relatório.
• 2 - Uma linha de total parcial feita por uma agregação escolhida.
Exemplificando, uma imagem fala mais que mil palavras:
A linha 1, com os 3 tracinhos horizontais é a linha de detalhes que contém os dados do relatório. Ela será repetida para cada linha de dados que a fonte de dados retornar.
A linha 2 é a linha de subtotal que é uma quebra feita por uma agregação ou grupo.
A linha 3 é a linha de total geral e contém a somatória de todos os itens exibidos na linha 1.
A maneira mais simples é na inserção do tablix via menu do report designer
Arraste o campo 'Tipo' para o box 'Row Groups' ( agrupamentos de linha ) e os demais campos para o box 'Values' que serão as linhas detalhes do nosso relatório. Portanto o campo 'Tipo' será um 'Agrupamento' e apartir desse agrupamento chavearemos a exibição da segunda linha em diante das linhas detalhe ( dados ) do relatório.
O report server não é simples e falta muita documentação decente de como trabalhar com ele.